package com.pw.manage.roster.mapper;

import java.util.List;
import com.pw.domain.EmployeesBaseInfo;
import com.pw.manage.roster.domain.EmployeesExtraInfo;
import com.pw.manage.roster.domain.vo.EmployeesRostervo;

/**
 * 员工基本信息Mapper接口
 *
 * @author lye
 * @date 2024-12-28
 */
public interface EmployeesBaseInfoMapper
{
    /**
     * 查询员工基本信息
     *
     * @param id 员工基本信息主键
     * @return 员工基本信息
     */
    public EmployeesBaseInfo selectEmployeesBaseInfoById(Long id);

    /**
     * 查询员工基本信息列表
     *
     * @param employeesBaseInfo 员工基本信息
     * @return 员工基本信息集合
     */
    public List<EmployeesBaseInfo> selectEmployeesBaseInfoList(EmployeesBaseInfo employeesBaseInfo);

    public List<EmployeesRostervo> selectEmployeesRosterInfoList(EmployeesBaseInfo employeesBaseInfo);
    /**
     * 新增员工基本信息
     *
     * @param employeesBaseInfo 员工基本信息
     * @return 结果
     */
    public int insertEmployeesBaseInfo(EmployeesBaseInfo employeesBaseInfo);

    /**
     * 修改员工基本信息
     *
     * @param employeesBaseInfo 员工基本信息
     * @return 结果
     */
    public int updateEmployeesBaseInfo(EmployeesBaseInfo employeesBaseInfo);

    /**
     * 删除员工基本信息
     *
     * @param id 员工基本信息主键
     * @return 结果
     */
    public int deleteEmployeesBaseInfoById(Long id);

    /**
     * 批量删除员工基本信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmployeesBaseInfoByIds(Long[] ids);

    /**
     * 批量删除员工额外信息模块
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmployeesExtraInfoByEmployeeBaseInfoIds(Long[] ids);

    /**
     * 批量新增员工额外信息模块
     *
     * @param employeesExtraInfoList 员工额外信息模块列表
     * @return 结果
     */
    public int batchEmployeesExtraInfo(List<EmployeesExtraInfo> employeesExtraInfoList);


    /**
     * 通过员工基本信息主键删除员工额外信息模块信息
     *
     * @param id 员工基本信息ID
     * @return 结果
     */
    public int deleteEmployeesExtraInfoByEmployeeBaseInfoId(Long id);
}
